{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean Squared Error: 5.964480625169293\n",
      "Cross-Validation Scores: [-0.11291122 -0.37920918 -0.19603502 -0.67833603 -0.85988417]\n"
     ]
    },
    {
     "data": {
      "image/png": "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2qpatar10qVLpfahdevWNuemTJli87yt1j//LG/UlClTbO6vmLOzszUuLs6ak5NjLVeunPXChQvW3Nxca61ataxWq9VqsVisbm5u1i+//NKo89Zbb1mfeuop43jhwoXWuXPnGscHDx60du7c2aadX375xfr4449bx40bZ83OzrYeP37c+uSTT9qUsfc7b9mypXXTpk3G8XfffWedOHGicbxlyxZrSEiIdfv27ca5+++/3xoXF2ccP/XUU9avv/7aOO7Zs6fNv+vNmzdbx4wZYxzv3bvX2rRp01L7IyJSTFO1RUTkjtKiRQuGDRuG2WymRYsWODg4GJ8NHTqU9u3bG8eurq7ExcXZ1K9bty49e/Y0jsPCwjh79ixQ9OqpTz/9lCFDhhif33333Tb1J02axKhRo4zj4OBg6tSpY7Np1z333AOAi4sLDRo0AMDZ2ZmcnJwbvs+77rqLoUOH8uyzz7Jo0SKbz95//306duyIj4+PcW7EiBHMmDHDppzJZOLy5cv861//AuC1117j/vvvB+Cdd97h0UcfNUbxPDw8aNWqFevWrTPqR0REcOHCBeN4zJgxxuj97VKuXDmGDh3K0KFD+eijj2xGq3Nycvjqq6/o1KmTca5Xr14262sXLlxI5cqVjWM3N7cSv/Pb4c8+yz8rKCiISpUq4eLiQoUKFahQoYLN35TJZMLf35/HH3/cqDNgwAC++uorCgsLycvLY968eTz33HPG540bNyYrK4t9+/bZ3OemTZt46aWXKFeuHHXr1uXjjz++4X5OnDiRJk2aGMel/Rts06YNDz74oHFcvXp1zp07B0B0dDQbNmygV69exuc9evQw/k1B0aj5k08+aRw3a9aMpKQk4xoiIqXRVG0REbkj9e7dm2XLltG0aVPjXOvWrfn+++95//338fPzw8XFBesfXj5hNtt+52wymcjPzweKXj9Vvnx53N3dS20zIyOD06dPc9ddd9mcr1mzJnv37rX5n/3bqXHjxkRERBjHv/76K926dSu1D3/Uv3//Uq8ZHh5OhQoVbNb+enl54eHhYRzPnj2bli1b0qJFC5555hnatm1rTIv/K7i6ulK7dm3j+PTp0+Tm5tr0sbCw0CaYdevWjY8//piLFy/i4+NDZGTkX7bm/c88y/+FP/5te3l54ejoyMWLF7l8+TJubm4ldhUv/rspnnIO0KFDB8qXL39LfejUqRNffvklJ0+eNKZn38y/wSNHjlCzZk2bMn369LEpHx4eztq1a/nll1+Mc/fff7/WXYuIXQrOIiJyR+rduzcPPPAAr732mvE/2ZMnTyYjI4PXX38ds9nMhQsXbur1TYWFhXY337JarZjN5hI7bV+99vKv4OTkZDOSaLVaS7R5rT5cPSJ/NavVykMPPWSsiy5N165d6dSpE6tXr2batGnMmjWLb7755ra+JuqPBg4caNNHDw8Phg4dalNm+PDhABQUFPDvf/+bZ555hmeffRYoWg98u3fkLvZnnmVZycvLw9PTk+Tk5FL/Rko7d637vBEDBw6kSZMmzJw5Eyj6kudmNmYrLCy87r8nq9XK448/bhPu//g3IiLyR5qqLSIid6SqVasSHBzMjh07gKINhRYuXMjs2bNLjGjdqNDQUBITE21GyK4exfL09CQkJISEhASbemfPnrUZBf0rODs7Gz83adKEyMjIP9WH2rVr24xiQ9GIemxsLABnzpzh9OnTODk50adPH7Zt20bLli1LvM/aycnJ5nmdP3/+hvtQmqvvs3r16sTGxpaY4l4cjHfu3ElOTo7N1PtrubqfmZmZJCcnA0XT6S0Wi03Z4tHPG3W9Z1lWYmNj8ff3x8PDg7CwMNLS0krc26387V7rdx4VFcXWrVt56aWXbrnPtWrV4uTJkyXO//rrr8bPpT3vkydPlhjZFhG5moKziIjcsYqna0PR6KPFYiEjI8P4/NSpUwAcPXqU1NTU617Px8eH9u3b8+OPPxrnvvzySwoLC43jKVOm2OzCnZycTERExP90tPHZZ5/l+++/Jzs72zj3wQcfMHXq1Ju6xtdff22zhnnJkiXGGuPMzExef/11mzqNGjWiQoUKNudCQ0OJiooCikYLN23adJN3c23u7u4MGjSIBQsWGOdiY2M5dOiQ0V56erpNndOnTwOwffv2a/Zz3bp1xqyB8uXLEx8fbzzLxMRE1qxZY/M7v57rPcv/lYSEBJvQuWDBAkaOHAkUfUEwfPhwmy8+Tp8+jaOj403v/n2t33lBQQG5ubnk5eUZZYv/Df7x93EttWvXpmbNmqxatco4Fx8fb/zOAUaPHs38+fONLwHy8/NtfqciIqXRVG0REbkjbNmyhV27dnHy5EkeeeQRGjZsSO/evalbty4tW7Zk0KBBfPbZZwwbNowGDRpgtVqpW7cuZrOZL774glmzZjF58mSOHTvGd999R9euXTl8+DBr167F19eXtm3bUqVKFd566y2ef/55fvrpJ7y8vLj33nv58MMP2bZtG61bt6Zfv34sWrSI8ePH4+vry4ULF/jiiy9wcHDg2LFjnDx5kmXLlvGvf/2rxM+rVq1i9OjRdu/z+PHjfP3110RERPDjjz/y73//u0QZHx8f3n33XUaOHMldd91FcnIynTt3NgLQ5s2bOXr0KMePH2f+/PnUrl2b/v3722wmFhISwrvvvsvgwYOpXLkynp6e9OvXz3j9VmBgIB988AFxcXE89NBDuLu7k5GRYQSxYvfddx/+/v707t2bkJAQm9cK2ZOamsrrr79OSkoKb7zxxjVHKefOncvo0aPp1asX1apVIyAggDFjxgDw8MMP8+ijjzJkyBCqVatGQUEBNWvW5JNPPqFSpUq0atXKuM4rr7zCqFGjqFu3Lm3atDHWQTs4ODBx4kRat25NtWrVCAkJoVu3bmzcuJGHHnqIqKioP/0sb8T27ds5cuQIa9euJTc3l7fffps6derw8MMPs2rVKhITE/nll19ITEy0+fnixYts376dVq1aUaFCBTZt2sTatWs5evQo5cuX58UXXzTaGD9+PNOmTWPKlCm4ubmRlJTE559/DsCVK1f47LPP2LNnD7/99htvvfUWtWrVokOHDiX6eq3feY0aNZg6dSqDBw+mdu3aFBYWUq9ePc6dO8eePXto0KABH330Eb/99pvR5+3bt7Nr1y7y8vJo1KgRPj4+LF26lJEjR/LNN98QHByMu7u7zd9V9+7diY+Pp1u3btSoUQM3N7fr/rsSETFZNS9FRERE5I5XrVo1YyRYRERsaaq2iIiIiIiIiB0KziIiIiJ3uOnTpxMTE8Ps2bPLuisiIn9LmqotIiIiIiIiYodGnEVERERERETsUHAWERERERERsUPBWURERERERMQOvcdZ7igWi4X4+Hg8PT0xmUxl3R0RERERESkjVquVK1euUKlSJcxm+2PKCs5yR4mPj6dy5cpl3Q0REREREfmbiImJISQkxG4ZBWe5o3h6egJF/zi8vLzKuDciIiIiIlJW0tPTqVy5spER7FFwljtK8fRsLy8vBWcREREREbmhJZzaHExERERERETEDgVnERERERERETs0VVvuSD1bjcHJwaWsuyEiIiIicsf46cCisu7CLdOIs4iIiIiIiIgdCs4iIiIiIiIidig4i4iIiIiIiNih4CwiIiIiIiJih4KziIiIiIiIiB0KziIiIiIiIiJ2KDiLiIiIiIiI2KHgLCIiIiIiImKHgrOIiIiIiIiIHQrOIiIiIiIiInYoOIuIiIiIiIjYoeAsIiIiIiIiYoeCs4iIiIiIiIgdCs4iIiIiIiIidig4i4iIiIiIiNih4CwiIiIiIiJih4Lz39jZs2fJycm5brmTJ0/e0Lk/KiwsLPW8xWK5fuf+f1FRUVit1hsun52dTUZGxg2XFxERERERKWsKzn8zubm5xs9xcXGsXbvWOD516lSpdb7//nv27dtnc+78+fO89957dtv6/PPPiY6OZs+ePaxatYo333yT8ePH88gjj5Cfn39D/XVycmLYsGE3VBZg586dfPHFFzdU9sCBA0BRwI+PjzeOi507d46zZ8/ecNsiIiIiIiK3wrGsOyC2Dh06xLJly/D39+f8+fMAREREkJWVRUJCAosXLzbKZmVlUa5cOby9valcuTJfffUVTk5O3H///fj7+7N9+3beffddYmJieO655wgODrZp6/Dhw1y5coVKlSoRHBxM8+bNCQoKYv78+Tg5OV2zj7/99hstWrQAIDg4mK5du3Lp0iWioqKIjIykoKCAfv36lVr322+/5fXXXwfgypUrxMXFERUVRe3atalWrZpN2e+//57vvvuOkydP0rBhQ3x8fFiyZAkuLi4AHD16lDlz5tzcAxYREREREblJCs5/M76+vrRs2ZJevXqxfv16EhMTCQsL49ixY1SqVMmmrNVqZc6cOfj4+HD58mXi4uI4efIkaWlpREdHU7duXTp06ICvry8ODg4l2nJ0dOT55583jtPS0oiMjCQ7O7vUvlksFsxmM9u2bWPt2rU4OztjMpkAiImJITg4mLCwMMqXL2+UvdpPP/2En58fU6ZMITMzk8zMTNq3b0/FihVLbc/JyYlJkyYxffp0nnvuOVasWMHYsWMJCQkB4LXXXqNevXo3/nBFRERERERugYLz34zZbGb69OksWbKE/Px8GjZsiJOTEyEhISVGZN3d3XFwcCA3N5fjx48zcuRIpk2bRrVq1Thx4gS//PILv/76K02aNGHQoEEl2kpISGDKlClYrVaSk5MpX748oaGhPPzww6X2bfny5VSrVo2cnBxeeeUVI4ynpaVx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H08//TSBgYE31LaIiIiIiMjNMFmLhxnlHys1NRUfHx/jODEx0Xj38Y26cuUKBQUF+Pr6lvp5fn6+8bqqYllZWTZTsC9dukS5cuXw9PS8bntZWVnk5eXZ9PuP1q1bxyOPPGIcf/XVV3Tv3t3YdftWpKen4+3tTfuGz+DkoLXPIiIiIiL/Kz8dWHT9Qv9DxdkgLS0NLy8vu2UVnOWOouAsIiIiIlI2/snBWWucRUREREREROxQcBYRERERERGxQ8FZRERERERExA4FZxERERERERE7FJxFRERERERE7FBwFhEREREREbFDwVlERERERETEDgVnERERERERETsUnEVERERERETsUHAWERERERERsUPBWURERERERMQOBWcREREREREROxScRUREREREROxQcBYRERERERGxQ8FZRERERERExA7Hsu6ASFlYtX0eXl5eZd0NERERERH5B9CIs4iIiIiIiIgdCs4iIiIiIiIidig4i4iIiIiIiNih4CwiIiIiIiJih4KziIiIiIiIiB0KziIiIiIiIiJ2KDiLiIiIiIiI2KHgLCIiIiIiImKHgrOIiIiIiIiIHQrOIiIiIiIiInY4lnUHRMpCj8dn4+hUrqy7ISIiIiJSZtZ9O6Wsu/CPoRFnERERERERETsUnEVERERERETsUHAWERERERERsUPBWURERERERMQOBWcREREREREROxScRUREREREROxQcBYRERERERGxQ8FZRERERERExA4FZxERERERERE7FJxFRERERERE7FBwFhEREREREbFDwVlERERERETEDgVnERERERERETsUnEVERERERETsUHAWERERERERsUPBWURERERERMSOOzY4nz17lpycnP9ZeykpKVit1puqc/jw4Rsue+LECRISEmzObdq06abaO3HixE2VLxYZGXlT5S9evHhL7YiIiIiIiJSFOyo45+bmGj/HxcWxdu1a4/jUqVPXrZuXl3dD7ezatQuALVu2cPbsWQCcnJxYvHjxTfV35syZpKSk3FDZ5cuX2wTS/fv3c+TIEQBSU1PJzs6+7jV++OEHtm/fflN9BFi3bh0///zzDZcfP348qamp1y2XlpZmPL/Y2FgsFgsHDhywKbN161YKCgpuqr8iIiIiIiI3w7GsO/C/dOjQIZYtW4a/vz/nz58HICIigqysLBISEuwGWycnJ7744gsGDBhw3XZef/11NmzYwI4dO1izZg0AHh4enDhxgpiYGCpXrnzda1itVgIDA/H19b1u2XPnzrFr1y7y8/P58ccf8fb25tSpUxQUFDBp0iR8fHxo27YtTZo0KVF3y5YttGnTBoAhQ4Zw+PBhDh48SGxsLCkpKQwYMACTyVSi3m+//UaLFi0AePLJJ9mxYwfnzp0jKiqK06dP07x5cxo1alSiXmxsLJUqVcLHxweLxcKlS5eIi4sjJiaGLl26YDb/33c53t7eDBw4kHr16vHjjz/y7bff8vrrr1OpUiWjzKlTp3jwwQev+4xERERERERu1R0VnH19fWnZsiW9evVi/fr1JCYmEhYWxrFjx2zCWGnMZjMmk4ndu3dz33332S3bqFEjXnnlFWbOnMmFCxfYs2cPcXFxXLlyhU8++QSr1UpmZiaDBg2iXr16pV7j4MGD9OjR47r3VFBQwHfffcfPP//MW2+9Re3atcnKyqJLly64u7szf/58Ro8efc36a9asYcOGDbi4uJCUlETz5s0JDAykYsWK1KpVi9zcXMqVK2eUt1gsmM1mXn/9derXr288F0dHRxITEwkODubBBx+kYsWKpba3aNEifH19mTBhAr/++is9evSgUqVKBAYGkp2djbu7u035pk2bMmHCBPLy8ggNDaVmzZpMnTrV+PzVV1/FwcHhus9JRERERETkVt1RwdlsNjN9+nSWLFlCfn4+DRs2xMnJiZCQEKpVq3bd+r169WLw4MHcd999WCwWPv30U5544okSwS0zM5MdO3YQExODo6Mjbm5utGvXjoEDB/LDDz/QpUuXa4a97du306pVK44ePUr//v2JjY01/tu5cycLFy60Kb9u3ToeeOABzGYzjz32GJ6enkycOJE2bdqQlJREx44dWbx4MYmJiYwbN86o98knn/DII4/g7e3N9OnTgaIR5x49epQIr8UsFgtTpkxhzJgx1K5dm8mTJwNFo+Px8fFERkZy9uxZNmzYwL333sujjz5qU/+nn36iT58+3HPPPUBR6B0+fLjdZ24ymdizZ4/xJcKZM2eYMmUKWVlZNzT6LyIiIiIi8mfdUcH58uXL7N27F0dHRzZv3kx8fDyhoaHk5uayfPly6tSpg6Pj/z2Sw4cP07BhQyPMlitXjjfeeAMoCuEdOnTgqaee4t1338XV1dWmnfz8fFxcXLjrrru46667+Oqrr3j88cf59ttvadq0KcHBwaVOgf7yyy/5+eefOXXqFKdOnSIhIYHHHnuMunXrcvz48RLlW7ZsSdu2bXF1deXy5ctkZ2djNpvZsWMHfn5++Pv7k5SUxJtvvmlTr3v37rz55psUFhYCRRt21a9fn8uXL3PgwAFOnDhBkyZNaNq0qVHHbDbTvXt3Vq9eTX5+PrNmzSIrKwuz2czevXt57rnnaNq0KV27dsXHx8emvYiICNzc3Dh+/Dg5OTkkJiayb98+Xn31VWPt+NixY3Fzc7OpZ7Vayc/PJzg4GIDQ0FCmTZsGQH5+/nXXVufm5tqsbU9PT7dbXkRERERE5I/uqM3BNm3aRKdOnejWrRsLFiygRo0aPPDAAzz88MNYLBab0Az/t8v01WGrQoUKxs9VqlShe/fufPrppzb1qlWrRtu2bSlfvjwWi4XVq1dTtWpV1q1bR0hICFartcTIcbHg4GBmzZpFw4YNGTNmDHXr1uX++++nZs2aNlOmi82bN4/58+ezePFifvzxR+Li4jh16hQ//PADjz/+OMuWLWPMmDEl1hv7+voaI8YAq1evBuDZZ5/FYrHQunVratasWaK9xo0b8+ijj+Li4kKXLl2YOXMm06dPp3nz5tSvX5+0tDQmTZpEUlKSTb0KFSrQpk0bTp06RXZ2NmFhYdSqVYuJEycybdo0pk2bViI0F3vooYf46aefgKIdvKdOncprr73Ga6+9ZvP7KM3s2bPx9vY2/ruR9eUiIiIiIiJXu6NGnLOzs3F2diY7O5srV66wevVq9u/fb0zb/qPi1zu5ublx4cKFUtftdunShbS0NJtz27dvJzU1lejoaMxmM3v27GH+/Pl07dqVuXPn4uPjQ1ZWlt2+mkwmvL29sVgs+Pv7c+HCBQICAkqUGzFiBJUrVyY/P5+uXbvSpk0bypUrR2BgIAcPHuSZZ57h3//+d6nPYvny5RQUFBAeHk6bNm2oXbs2SUlJPPTQQ6X2qbCwkC+//JLTp0/TsGFDvvrqK/Lz8ykoKODw4cOUL1+e4OBgsrOzCQwMtKnr7+8PQLly5WjXrh0Anp6eQNGocGJiIrGxsRQWFtps9mWxWACMXbhDQ0Np3rw5jRs3JigoiISEBD799FMGDx5cap/Hjx/PyJEjjeP09HSFZxERERERuSl3VHAeNmwYo0aNwtfXlxUrVlCxYkVatWpFRkaGzVRrKNptujgoP/DAA3zwwQc8//zzxud79uyhSZMmuLi44O3tbZzPy8ujffv2jB49mpkzZwLg4+NDYWEhAQEB/PzzzzzxxBPX3C3bbDYb73s2mUzGWuhLly5Rvnz5EuWLQ6CTkxPu7u64u7uTnZ1NXFwcfn5+pbbx+++/M2/ePKZNm0ZycjJ79uzh0qVLJCcns2PHDlxdXbFYLBQWFtKhQwdatmwJFH0hUK1aNfLy8mjatCknTpxg0qRJfP3113h7e9OnTx8CAgL47bffbNo7duwYW7ZsISMjg/DwcObMmYPFYjFeJeXi4oK/vz+BgYH4+flRWFho3HdGRgazZ88mPj7eeCadOnVi0aJFDBgwgLfeeosnn3yy1PsEcHFxwcXF5Zqfi4iIiIiIXM8dFZxTU1OJj4+nWbNm+Pj4sG7dOlq0aIGTkxOzZs2iS5cuxpTm999/n88//xwAZ2dnXF1dOXDggLGxVXBwMIcOHTJCZbHjx49z9913l2h79erVTJ8+nQkTJtC9e3djtPWP3NzcyMzMNI6LA+TFixdLjOL+UfXq1Rk0aBDOzs6kpKRw5MgRIiMjueuuu2zK1alTh8WLF/PNN9/w6KOP4uvri7e3NzNmzODTTz8lNja21FHq4tdWfffddzz11FNA0Trjc+fOMW7cOEaOHEn//v2NUeJitWrVwsvLi+DgYJtN0QoLC22mi5fG09OTrl27kpiYCGC8ruqhhx5i1qxZzJ071+YVViIiIiIiIrfbHZM4du3aRUFBAX5+fixdupQOHTrQuXNncnJyCA8PZ/z48cyePZudO3cC8Omnn+Ls7GzUf+qpp1i5ciXLly/HYrEQEhLCnj17SrSzb98+7r//fptzWVlZeHh4EBwczGuvvUZ6ejpeXl6l9tPDw4OMjAzj+Hojzldbvnw5jzzyCB06dODpp5/mlVdeKTGN/GpxcXGEhYUREBBAeHg4QUFBNGrUiAsXLnDlypVS60RHR9usfV6xYgXPPvssrq6uvPfee1SuXLnElHInJyeqVKlSYifx4pH166lbt64R2otDcr169fD29iYlJeWGriEiIiIiInKr7ojgnJiYyBtvvEH9+vWpXr06ISEhjBgxAgAvLy8iIiJIT09n6dKl1K9fH6DUVzLNmTMHNzc3/vvf/9KnTx/Wrl1bokxWVhZOTk7MmTPHCHWFhYUEBwezfv161qxZw6efflrqNGqr1YqTkxP79+8nJiaGrVu3cuLECb744gt++uknPv74Y5599lmioqJKvc8nn3ySbdu2sXnzZj777DMefvhhGjRoUGrZ8PBw433Ux48fZ8OGDQwbNgyAPn36MG/evFLrrVq1ylhPXFBQQM+ePY2p6ocOHeLEiRPGM7yeP45M34jid2kfOnSI4cOHM27cuBsO4CIiIiIiIrfijpiqHRgYyLx584zRyrZt29KoUSOWL1/OggULyMzMJDIykhkzZlx3PWyXLl3o0qULVquV7Oxsm89+//13WrRogaurK0888QRPPPEEOTk5ODg4EBUVRYUKFXj44YepWrWqzQZVBQUF3H///Rw+fNjY/dnT05OTJ0/i7u7O5cuXcXd3JzMzE29vbyIjI0u8d/ry5ct88sknrF+/HgBXV1fc3d2JjIwkLCzMpmxmZiZnzpyhZ8+e/Pjjj2RlZTFx4kTjcw8PD3x9fXnqqad44IEH6NevH05OTmzevJlHH30UJycno82rn5erqysvv/wyO3bsuKHfy/nz5+1+npSUZLwuC4q+WNi0aRONGzemS5cuADRo0IBHHnmEAQMG8Pjjj99QuyIiIiIiIjfDZNVw3W1TUFBg80qrvLw8m+ne9uTn5xuB9FYUFhaye/dumx2pryU5ORl/f38uXryIq6trqeutc3JySEtLIzAw0PjC4Y99zMrKKvEKqdLWVF9LXFyc8X7m0lgsFjZt2kSHDh2M9r7//nv69OlzQ9cvTXp6Ot7e3rTrPA5Hp5Kv9xIRERERuVOs+3ZKWXehTBVng7S0tGsupS2m4Cx3FAVnEREREZEiCs43HpzviDXOIiIiIiIiIrdKwVlERERERETEDgVnERERERERETsUnEVERERERETsUHAWERERERERsUPBWURERERERMQOBWcREREREREROxScRUREREREROxQcBYRERERERGxQ8FZRERERERExA4FZxERERERERE7FJxFRERERERE7FBwFhEREREREbFDwVlERERERETEDsey7oBIWVj91Xi8vLzKuhsiIiIiIvIPoBFnERERERERETsUnEVERERERETsUHAWERERERERsUPBWURERERERMQOBWcREREREREROxScRUREREREROxQcBYRERERERGxQ8FZRERERERExA4FZxERERERERE7FJxF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mRw8eNDY5TsxMZH9+/dfcwftG5Geno63tzctB03A0fn2/C5FRET+X7bjg2vvRyIi8k9WnA3S0tLw8vKyW/aOCs4iCs4iIiI3R8FZRP5fdTPB+R+1xllERERERETkf03BWURERERERMQOBWcREREREREROxScRUREREREROxQcBYRERERERGxQ8FZRERERERExA4FZxERERERERE7FJxFRERERERE7FBwFhEREREREbFDwVlERERERETEDgVnERERERERETsUnEVERERERETsUHAWERERERERsUPBWURERERERMQOx7LugEhZWL9oLF5eXmXdDRERERER+QfQiLOIiIiIiIiIHQrOIiIiIiIiInYoOIuIiIiIiIjYoeAsIiIiIiIiYoeCs4iIiIiIiIgdCs4iIiIiIiIidig4i4iIiIiIiNih4CwiIiIiIiJih4KziIiIiIiIiB0KziIiIiIiIiJ2KDiLiIiIiIiI2OFY1h0QKQutp87BwaVcWXdDRP5B9s9+pay7ICIiImVEI84iIiIiIiIidig4i4iIiIiIiNih4CwiIiIiIiJih4KziIiIiIiIiB0KziIiIiIiIiJ2KDiLiIiIiIiI2KHgLCIiIiIiImKHgrOIiIiIiIiIHQrOIiIiIiIiInYoOIuIiIiIiIjYoeAsIiIiIiIiYoeCs4iIiIiIiIgdCs4iIiIiIiIidig4i4iIiIiIiNih4CwiIiIiIiJih4KziIiIiIiIiB13bHA+e/YsOTk5f3k7+fn5N1z28uXL5OXl2ZzLysri4sWLt9T2iRMnbqjc1X20Wq2cOnXqhtvIysoiNjb2pvp1q/cjIiIiIiJSFu6o4Jybm2v8HBcXx9q1a43j0sJifn4+W7ZsMY6Tk5M5ePAga9as4bHHHisRcot98sknJCUlAfDOO+8QERHBtm3bWLVqFe+99x5PPfUUn3/+eYl6Dg4OjBs3zuacm5sbI0aMuO697dq1q0R/PvvsM86ePXvdui+88AKFhYVAUXCeM2fOdesUc3V1ZcaMGcZxTEzMdeuMHz+e1NTU65ZLS0sz+h8bG4vFYuHAgQM2ZbZu3UpBQcEN91dERERERORmOZZ1B/6XDh06xLJly/D39+f8+fMAREREkJWVRUJCAosXL7Yp7+TkxHvvvceuXbsACAgIoEqVKoSFhREWFoazs3Op7fTp04c+ffqw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ERER+Tu5peA8Z84cWrZsidVqBYrWN1esWPG2dkxERERERETk7+CWgvOSJUsoX768zbm5c+felg6J/C9smzoOLy+vsu6GiIiIiIj8A9zSGuc/hmaA1NTUP9sXERERERERkb+dWxpxnj59us1xWloaiYmJt6VDIiIiIiIiIn8ntxScMzIy6Ny5s3Hs4+NDgwYNblunRERERERERP4uTNbiHb5uQkFBAY6Ot5S5RcpUeno63t7epKWlaY2ziIiIiMgd7GaywS2tcXZwcLA53rNnDykpKbdyKREREREREZG/tVsKzj/88IPN8b333svnn39+WzokIiIiIiIi8ndyS8G5NLGxsbfrUiIiIiIiIiJ/Gze1UPn9999n2bJlpKSksHDhQgCsVisuLi706tXrr+ifiIiIiIiISJm66c3Bzp49y7Fjx+jatetf1SeRv4w2BxMREREREbi5bHDTW2NXr16dgoKCW+6ciIiIiIiIyD/JLb1TqlatWjbHly5dIiMjg9DQ0NvSKZG/2n3vzMKhnEtZd0NE/kYOvzStrLsgIiIif1O3vDnYxYsXiY6OJjo6muzsbD744IPb2S8RERERERGRv4VbGnGeOXMmJ0+eJCEhgSpVqmC1WvHw8LjdfRMREREREREpc7cUnOvUqcOkSZNYtWoVPXv2BNB7nEVEREREROT/Sbc0VdvRsShvp6amGuccHBxuS4dERERERERE/k5uKTgfP36cVatW0bRpU15++WWOHTvG7t27b3ffRERERERERMrcLQXnZ555BicnJxo1akTz5s2ZPHky3bt3v919ExERERERESlzt7TG2d/fn65duwLQq1cvevXqdVs7JSIiIiIiIvJ3cUsjzhcuXKB///6MGzcOgLVr15KRkXFbOyYiIiIiIiLyd3BLwXnhwoVMmDCBFi1aAPDII4/w2Wef3daOiYiIiIiIiPwd3FJwrl27NnXr1sVsLqpuMpkwmUy3tWMiIiIiIiIifwe3FJyzs7MBjLBssVg4fvz47euViIiIiIiIyN/ELW0Ods899/D000+TlpbGhg0b+PXXX5k3b97t7puIiIiIiIhImbvh4JyQkMDGjRvp378/zZs3p3bt2uzcuROLxcLUqVMJCAj4K/spIiIiIiIiUiZuODg/8MADbNu2DbPZTHR0NAD16tWjSpUqf1nnRERERERERMraDa9xHj16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bdqUSZMmldjUatCgQTbHtWrVMqaa79+/n8jISJv12C4uLtx33304OztTUFDAiBEjKFeuHCdPnqRy5co4ODiwZMkSatasaWwIBkVTqxcsWMDvv/9Oy5Yt6dSpEwBff/21zSujMjIyjPtycnLixIkTHDx4EE9Pz2s+n2JZWVl2v6gAuHDhAgEBAcZxcnIyX331FUuXLqVSpUpUqlSJd955hyFDhjBo0CDuv//+67YrIiIiIiJys0zWf9hc18OHD+Pu7l5iOjBASkoKLi4uJdYRX7lyhZUrVzJ48OA/3f6JEyeMXZ/tSU5OJjU1tdR1yXl5ecaO0vZcunSp1CnOf5SamkpmZmaJTcCupXhzr6ioqBKj2Fdf02q14uvra5zLz8831mxDUfj947OOjIzkrrvuuqF+xMXF2e1zXFwcly9fNmYd/P7776SmpnLvvffe0PVLk56ejre3N20+eQlHN+22LXemDX1ml3UXRERERMpccTZIS0vDy8vLbtl/XHAW+TMUnEUUnEVERETg5oJzmW0OJiIiIiIiIvJPoOAsIiIiIiIiYoeCs4iIiIiIiIgdCs4iIiIiIiIidig4i4iIiIiIiNih4CwiIiIiIiJih4KziIiIiIiIiB0KziIiIiIiIiJ2KDiLiIiIiIiI2KHgLCIiIiIiImKHgrOIiIiIiIiIHQrOIiIiIiIiInYoOIuIiIiIiIjY4VjWHRApC2t6TsXLy6usuyEiIiIiIv8AGnEWERERERERsUPBWURERERERMQOBWcREREREREROxScRUREREREROxQcBYRERERERGxQ8FZRERERERExA4FZxERERERERE7FJxFRERERERE7FBwFhEREREREbFDwVlERERERETEDgVnERERERERETscy7oDImVhyo4XcXF3LutuiNw2cx56v6y7ICIiIvL/LI04i4iIiIiIiNih4CwiIiIiIiJih4KziIiIiIiIiB0KziIiIiIiIiJ2KDiLiIiIiIiI2KHgLCIiIiIiImKHgrOIiIiIiIiIHQrOIiIiIiIiInYoOIuIiIiIiIjYoeAsIiIiIiIiYoeCs4iIiIiIiIgdCs4iIiIiIiIidig4i4iIiIiIiNih4CwiIiIiIiJih4KziIiIiIiIiB0KziIiIiIiIiJ2/G2C89mzZ8nJybFbJikpiaysLACsVmuJz/Pz80utl52dTVpaWonzUVFRN93PzMxMTp06dcPlk5OTycjIIDc396bbKhYdHc2OHTuu+XlBQQHnz5+3Obdv376bauPSpUskJSXddN/y8/OJiYm5qToXL1686XZERERERETKSpkG56vDZFxcHGvXrjWOSwunJpOJOXPmALBy5UoWLVrEjBkzmD59Oi+99BKzZs0qtZ1y5coxatSoEufHjh1rt39btmzBYrHYnHN3d2f27NnG8ddff33N+gkJCUyZMgVnZ2eGDBlit60/io2NZcmSJYwdO5b58+dz/vz5En0plpqayvTp023OrVmzhsOHD99we4GBgYwbN+6mQ62TkxNz584lOjr6hspbLBaGDx9+Q2XDw8ONe46OjiY2NpbExESba/3yyy831V8REREREZGb5ViWjR86dIhly5bh7+9vjJhGRESQlZVFQkICixcvtinv5uaGl5cXAHl5eQQFBXHXXXdx4sQJatSoQWBgYKntmEwmgoODjePMzEzc3d2pU6eO3f5VqVKF/v3789VXX7Fx40bq1atHUFAQVatWBWDz5s12R2nfeecdxo0bh7OzM5UrV77u89i7dy+nT58mIyOD8+fPExAQwNy5c7l06dI17w3g22+/ZcKECTbnnnnmGaxWqzEa7evri5+fX4m6W7ZsoU2bNgAMGzaMlJQUIiMjOX/+PD4+PnTs2LFEnfj4eAoLC417euaZZ8jNzeX3338nKiqKM2fO0LdvXwICAkrUXb16NU888QRQNFqdkJBAbGws+fn5tG7d2qZsbm4uQ4cOJSAggI0bN7Jp0ya6d+9O48aNAYz7a9u2rb3HKiIiIiIi8qeUaXD29fWlZcuW9OrVi/Xr15OYmEhYWBjHjh2jUqVKJcpnZ2ezY8cOunTpgsViwWq1EhQURHBwMKtWrWLQoEHXbMvFxcX4eerUqfx/7d15XFVl4sfxz2VVdhAUFVzSQE3SMtTMypx0XpmaWbZMv9TMysp0xkwlcS/NyjRf6sw0VsZYjpqOadnkbm6pqKEEooYLyKKA7Duc3x+8OC9u4M2QwuX7/otzz3nOee7x6dCXZznh4eHY29vbrF+bNm3MXuzevXszdOhQPvzwQ+zs7CgqKiI+Pp7Ro0fXWHbnzp2EhIQQEBAAQMOGDc19R44cMcNfVV27dqVr166kpKQwd+5cRo0aRWlpKS+++CL//ve/cXNzq1amvLycjIwMAgMDOXPmDAsWLMDHx4fMzEwCAwOxWCy4ublx++2307Vr12rl582bx5YtW3ByciIrK4uuXbvi5+fHrbfeav6Rouq17OzssLOz4+WXXyY0NBQ7Ozvz+wUEBNCsWTP69euHi4tLtWvl5eWxfft2vL292bt3LwcOHOCJJ57A39+fxo0bVzve2dmZRx55hNatW9O2bVtcXV154IEHCA8PByqGfK9fv77G+y8iIiIiIlJX6jU429nZMXPmTJYtW0ZJSQmdOnXC0dGRgIAAWrVqZXVsSUkJO3fupHv37uzatYuAgAC2bt1KamoqTZs25eGHH8bT05OUlBT8/f3Ncvn5+Vy6dInjx4+zbNkyhg0bRklJCZ6enjXOk6681oULF2jevLlZj/T0dN58803c3NywWCwkJiYyaNAgvv/+e+677z6r8mlpabz00kscPny42rkvXbrEpEmT2LhxY43B/dKlS/zzn//khRdeYPv27WzatInw8PAaQzNU9DY/8cQTHDp0iMOHD7NgwQK+/vpr0tLS6N27N66urjRq1MiqTE5ODitWrODZZ5/lzjvvZObMmZSVlTF8+HCeeuqpGq8DFT3NX3zxBU888QSPPPIII0aMMO/XuXPniI+P5+jRo6xatYpXX32VoKAgq/JLly5lzpw5eHp6AvD2228zcuTIy16vMqjv3LmT4cOHm0Ozi4uLKS4upn///jRp0uSy5UVEREREROpCvQbnjIwMDhw4gIODA1u3biUpKYnWrVtTVFTEypUrad++PQ4OFVX8/vvvadq0KWfOnCE0NJRly5bh7u5OWloap06dwsfHh1WrVuHv709YWJh5jSNHjtCiRQs6dOiAnZ0dMTEx2Nvb8/nnn7Nr1y6mT59Ofn4+jz/+uNkj6+joyGeffWYO1Y6MjOTo0aOcPXsWe3t7kpOTiYiIID8/n1atWlkF55KSEubPn88zzzyDxWKx+r6pqanMnDmTzz///LK93TNmzMDd3Z0ff/yR/fv3M3HiRLNX95dycnL44IMPGDBgAIcOHSIiIoLc3Fx++uknc/723LlzefXVV62Ct7u7O3fccQdr166lrKwMgI0bN/LSSy9x8uRJ4uPjOXHiBEOGDLH6I0RAQAANGzbk0KFD5OfnM2nSJBwcHHBycuLw4cOMHj2aBx98kKFDh+Lq6mpV1//9738MGDCA5cuX06FDBy5cuMCePXt4++23yc/Pp0WLFrz00ktWZQzDwGKx4OHhgYODA+Xl5fTu3dvscd6yZUuNPdVVFRUVWc2lz87Otnm8iIiIiIjIL9VrcN6yZQvjx4/HxcWFkpISwsPD6dmzJ1Axf7gyNAOsWrWKOXPmsH//fjw9Pbnzzjtp3bo1paWlJCYmcvfdd3Po0KFqc4E3b97MtGnTMAyDoUOHsnjxYp577jlcXV2Ji4tj+vTpNdatslcYID4+HicnJ5577jmzB9owDM6ePcvu3bvNMoZhsGTJEsaNG8cnn3xiFXjPnj3LokWLmDdvHg0aNLjsPVmwYAHR0dFs3bqVefPm4eDgwKJFi3B1dTXnBldyd3dn+/bt7N+/n3vuuQdnZ2cGDx5MSEgICxcuJDk5maCgIF599VU+++wzq7KhoaF06dKFKVOmUFZWRkxMDFCxGve4cePo378/Xl5e1eo3evRo1q9fz2233cb9999PSEgIeXl5zJ8/nxYtWpCQkMD8+fNZsmRJtes1atSI6OhoOnbsSKdOnbjrrruYPHnyZe9FeXk5FouFRx99lOXLl/P000+zY8cOysvLadCgARkZGTzxxBOXLQ8wZ84cZsyYYfMYERERERERW+o1OBcUFODk5ERBQQE5OTmsWbOGyMhIc9h2VVOnTsVisWCxWCgoKGDlypW0aNECqFg1e//+/bRu3Zpbb73VLFNaWkppaanZ85uVlUVAQAAdO3YEuGxPbuW+/v37s2/fPtq3b09UVBQLFy7Ez8/PnOfbrVs3qzInT55k5MiRuLq6msOMAdavX09+fj6zZs2yeT9yc3NZtGgRW7duZeDAgUyYMIFOnTrRvHlz0tPTef/99xk/frxVGcMwOHz4MKNGjSIyMpJZs2axYcMGBg8ezKxZsxg+fDh9+/atdq3z588TERFBcHAwGzduZPTo0RQUFODi4kKPHj3Mc1eVlZXFp59+ysGDB/nwww955ZVXaNmyJWfOnMHd3Z2dO3fStGnTGuc3Vw4Xb968ubkImJOTk/m9U1JSOHfuHM2aNaNdu3ZW13dxcSEpKcnscfb392f48OHY2dmxbt06nJ2due2222q8p2FhYYwbN87czs7OvqKF2kRERERERCrVa3B++eWXef311/H29jaHWd93333k5uZaLaYFmOHRYrHQvn17pk6dytGjR0lPT6e4uJgNGzYwfPhwq0W3HBwczLBadQXmNWvWkJyczM6dO82h2pMnTzbn3la1Y8cOwsLCiIqKYsyYMXh5eZGSkkJ8fHy14chV5/SWl5eTlZXFl19+Sbdu3X51BW8ANzc3HnnkEV544QUaNWrEs88+yzPPPGP2vFe+w7qqV155BUdHR1atWsXDDz+Mj48Pq1evJiAggObNm1dbURwqeu9jY2O54447cHBw4Pjx40RGRhIVFYW9vT25ubnm4msjRowwF2r78ssvefzxx0lLS8PX15fbb7+d8PBw3njjDTp37syQIUPIzs7m+PHjVtfbtGmTuVp6VFQUc+bMwTAMtm/fTmlpKa6urvj5+eHr60tBQYHVPTx+/Dg//fQTpaWlGIaBvb09AwcOZMWKFYSEhHDs2DFzVfCaODs7Wy0MJyIiIiIi8lvVa3DOzMwkKSmJ0NBQvLy8+Pbbb+nWrRuOjo7Mnj2bAQMG0LlzZ/P4qr24LVq0YNWqVbz11lvmEO0uXbpUu0Zlb7NhGGavZ3BwMA8++CDp6elMmzatWpmSkhKKiopITEy0eqXSkiVLaNu2Lf7+/vj5+VFSUnLZ71ZWVkZmZiYvvfQSFouFb775xmr/d999V+Ornjw8PJg4cSJLly4lODiYwsJCVqxYQe/evWnTpk214z/88EPc3NwoLi5m//79dOvWzXz3cdUe9cpXcAHm8OZ3332XN954gy5duuDr68uYMWMYMGAA7dq1q7Y4G8Dzzz9PcXGxOS8aKt6vfNttt3HvvfcyZMgQJk6cSNOmTa3Kde3alTvuuKPaMPqysjKmTJly2XtoGAYdO3YkPT2dBx54wAzOvr6+lJaW8uOPP9osLyIiIiIiUhfqLTjv2bMHNzc3fHx8iIiIYOjQobi4uFBYWMjx48cJCwvjmWee4bXXXjPnPVfOeQXw9/dn6NChzJo1i8LCQubNm2fzepVhEvjVodqOjo4sXLiQH374gX/961/m56+88opVoKx8Z/Hlrte2bdvL1qem9z8nJCTw0UcfsWDBAvMzNzc3Ro4cycyZM7FYLISHh5v1Li8v5+jRo3z//fe0bt2aQYMG8dVXX5nBuOriZJs2beLRRx81twsLC/Hx8cFisdCkSRP++c9/MnToULp168b8+fP529/+VmO9165dy9NPPw1UvEt78+bNjBgxAovFwueff853331X7XvXNFcaqg8Fr2m/xWIxv092dra5qNrTTz/N5MmTzWNERERERER+L5ef5Ps7Sk1NZf78+YSEhNCmTRsCAgIYM2YMUNHjGhMTQ3Z2NhEREYSEhJjlqgZnqFgxu2HDhgQGBrJ69Wqb1ywvL6egoICsrCzOnz9PdHQ0p0+fZu3atXz00UeEh4dbhdlXX32VkJAQM/RVDd5lZWX8+OOP5OfnXzZ8V+2VBYiNjeX8+fPmvsjISC5cuGDuP3bsGHv37mXWrFnExMRY7bNYLEybNo0WLVpYXe/kyZNs3ryZsWPH8uSTT3LhwgUSEhK4/fbbAesVpE+ePGlVnw0bNvDkk08C8NVXX+Ht7W3O2b7nnntYsWJFte9UVFRESkqKef7S0lIzNJeUlHDmzBmioqLo0KFDjffkl6re08vtr/rvXdnjvGbNGtLS0hg4cKDVHxlERERERER+D/XS4+zn58e7775rhsDevXvTuXNnVq5cyQcffEBeXh7x8fHMmjXLan5qZmYm9vb2fP/99xw6dIj777+fYcOGAbB7924GDx5McHAw3bt355FHHjHLpaamUl5ezgcffMD777+Pn58fPj4+eHl5sXLlSjw8PPDw8CA6OppevXoBFQuOTZ061TxHVlaW+XNlr+fYsWOZMGFCjd/x0qVLVtujRo3itdde49KlS1gsFho1akR6ejqNGzemrKwMV1dXM8jeddddhIeHV5ubO3z4cKvt4OBgc6h5ZGQk8fHxVgthOTs706NHD5ycnCgtLWXMmDE0aNCAuLg4AgMDsbe3Z9myZQQFBZkLgkHF0OoPPviA2NhYunfvTr9+/QD4z3/+Y/XKqNzcXDPYOjo6cvz4cQ4fPoy7u3uN96Sq/Pz8Gnvdq0pJSbEaKp+ens4XX3xBREQEzZo1o1mzZixevJgXXniB4cOHc8899/zqdUVERERERH4ri/Fr42WvMVFRUbi6utY4DPrSpUs4OztXW9U5JyeH1atXM2LEiFpfNzc3F3t7e6tFyy5cuICbm1uNq0hnZGTg4+NT6+sBXLx4sdq84JpkZmaSl5dXbRGwy6lc3OvMmTPVerGrntMwDLy9vc3PSkpKcHR0NLfz8/Orfff4+HhuueWWK6rH+fPnbdb5/PnzZGRkmKMOYmNjyczM5O67776i89ckOzsbT09P/vr1czi7OtX6PCLXmnd6/aO+qyAiIiJyXanMBllZWXh4eNg89roLziJXQ8FZblQKziIiIiK/zW8JzvUyx1lERERERETkeqHgLCIiIiIiImKDgrOIiIiIiIiIDQrOIiIiIiIiIjYoOIuIiIiIiIjYoOAsIiIiIiIiYoOCs4iIiIiIiIgNCs4iIiIiIiIiNig4i4iIiIiIiNig4CwiIiIiIiJig4KziIiIiIiIiA0KziIiIiIiIiI2KDiLiIiIiIiI2KDgLCIiIiIiImKDQ31XQKQ+zLh3AR4eHvVdDRERERERuQ6ox1lERERERETEBgVnERERERERERsUnEVERERERERsUHAWERERERERsUHBWURERERERMQGBWcRERERERERGxScRURERERERGxQcBYRERERERGxQcFZRERERERExAYFZxEREREREREbFJxFREREREREbHCo7wqI1Ie1B/vj4qrmXx+e6L6tvqsgIiIiIvKbqMdZRERERERExAYFZxEREREREREbFJxFREREREREbFBwFhEREREREbFBwVlERERERETEBgVnERERERERERsUnEVERERERERsUHAWERERERERsUHBWURERERERMQGBWcRERERERERGxScRURERERERGxQcBYRERERERGxQcFZRERERERExAYFZxEREREREREbFJxFREREREREbFBwFhEREREREbFBwbmO/PzzzxQWFtaq7OnTp8nNzb3i47Oysrhw4UKtrmWrDuXl5b+5XExMzG86PiMjg7Kyst98HRERERERkfqi4HwVioqKzJ/Pnz/Pxo0bze0TJ05UO37r1q0AFBcXs3DhQqt9b7/9ts1rVQ21np6eTJ06lezs7Cuua3p6us39Pj4+jBw5kpKSkis+J1T8wWD27NlXfPyaNWvYvHnzFR176NAhAHJycsjMzDS3K0VFRXHx4sUrr6yIiIiIiEgtONR3Ba5nR44cYcWKFTRq1IizZ88CFT2w+fn5JCcn8+mnn1odv3LlSjZv3oybmxs5OTnm597e3jRr1szmtdatW0fHjh3JyMggISGB8vJy/v73v2OxWCgqKqK8vJw33ngDFxeXGsv/4x//YPLkyVafrV+/np49e5KWlkZaWhqBgYEsW7aMCxcukJeXxy233MLIkSOrnWvbtm307t0bgAEDBuDm5kZmZiapqamcP3+edu3a1fh9ysvLOXDggHnOS5cukZSURHx8PD169KBRo0ZWx0dERLBu3ToOHDjAsGHD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ERsUnEVERERERERsUHAWERERERERsUHBWURERERERMQGBWcRERERERERGxScRURERERERGxQcBYRERERERGxQcFZRERERERExAYFZxEREREREREbFJxFREREREREbFBwFhEREREREbFBwVlERERERETEBgVnERERERERERsc6rsCIvVhcOjXeHh41Hc1RERERETkOqAeZxEREREREREbFJxFREREREREbFBwFhEREREREbFBwVlERERERETEBi0OJjcVwzAAyM7OrueaiIiIiIhIfarMBJUZwRYFZ7mppKenAxAYGFjPNRERERERkWtBTk4Onp6eNo9RcJabio+PDwDnzp371f84RC4nOzubwMBAEhIS9FozqTW1I7laakNSF9SO5Gpdz23IMAxycnJo1qzZrx6r4Cw3FTu7imn9np6e191/2HLt8fDwUDuSq6Z2JFdLbUjqgtqRXK3rtQ1daWeaFgcTERERERERsUHBWURERERERMQGBWe5qTg7OzNt2jScnZ3ruypyHVM7krqgdiRXS21I6oLakVytm6UNWYwrWXtbRERERERE5CalHmcRERERERERGxScRURERERERGxQcBYRERERERGxQe9xlutecnIyU6ZMoWPHjpw+fZpZs2b96jvkbJWpzfnk+lfX7ejxxx/nzJkz5rGdO3dm6dKlv+dXkHpWmzYUGxvLzp07WbZsGT/88IPVvuPHjzNv3jw6dOhAcnIys2fPxsFBv7ZvdHXdjnr06EFxcbG53a9fP2bOnPm71F2uHbVpR9988w2pqakAREZGMmbMGNq1awfoeXQzqus2dEM8iwyR69zAgQONgwcPGoZhGDt27DBeffXVqypTm/PJ9a+u29Gnn376u9RTrl21fXaUl5cbLVu2rPb5XXfdZSQlJRmGYRjLli0z3nvvvTqrq1y76rod6Vl0c/qt7SglJcUYPHiwuX3y5Emjb9++5raeRzefum5DN8KzSMFZrmuJiYlGUFCQuV1aWmoEBAQYBQUFtSpTm/PJ9a+u25Fh3Bi/IOTKXe2z45eBZ9++fcaDDz5obl+8eNFo27ZtndRVrl113Y4MQ8+im1Ft2lFcXJzRpk0bc7ugoMDo2LGjYRh6Ht2M6roNGcaN8SzSHGe5rv30008EBQWZ2/b29vj4+JCQkFCrMrU5n1z/6rodAWRnZxMeHs7EiRMZMmQI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",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from utils import column_letter_to_index\n",
    "import pandas as pd\n",
    "import semopy\n",
    "import numpy as np \n",
    "import os\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.metrics import mean_squared_error\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import matplotlib\n",
    "import warnings\n",
    "\n",
    "# 屏蔽 DataConversionWarning 警告\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "matplotlib.rc(\"font\",family='FangSong')\n",
    "data_path = '../data/raw_data/1118 334份 按选项序号 汇总变量后.xlsx'\n",
    "df = pd.read_excel(data_path)  \n",
    "X_list = ['X','Z','AB','AD','AF','AH','AJ','AL'] #患病年限8种做回归，得出一个加权数，输出结果在output里的regress里，黏贴到原本的Excel里\n",
    "Y_list = ['BF'] #因变量，目前是电子健康素养\n",
    "\n",
    "#----------------------------------------------------------------\n",
    "\n",
    "X_index = [column_letter_to_index(x) for x in X_list]\n",
    "y_index = [column_letter_to_index(x) for x in Y_list]\n",
    "\n",
    "\n",
    "X = df.iloc[:,X_index]\n",
    "Y = df.iloc[:,y_index]\n",
    "# print(X.info())\n",
    "# print(Y.info())\n",
    "\n",
    "# 划分训练集和测试集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=42)\n",
    "\n",
    "# 实例化和训练线性回归模型\n",
    "# model = LinearRegression()\n",
    "model = RandomForestRegressor()\n",
    "model.fit(X_train, y_train)\n",
    "\n",
    "# 预测\n",
    "y_pred = model.predict(X_test)\n",
    "\n",
    "# 评估模型\n",
    "mse = mean_squared_error(y_test, y_pred)\n",
    "print(f'Mean Squared Error: {mse}')\n",
    "\n",
    "cv_scores = cross_val_score(model, X, Y, cv=5)  # 5折交叉验证\n",
    "print(f'Cross-Validation Scores: {cv_scores}')\n",
    "\n",
    "model.fit(X, Y)\n",
    "\n",
    "# 提取特征重要性\n",
    "feature_importance_rf = pd.DataFrame({'Feature': X.columns, 'Importance': model.feature_importances_})\n",
    "\n",
    "# 排序\n",
    "feature_importance_rf = feature_importance_rf.sort_values(by='Importance', ascending=False)\n",
    "\n",
    "\n",
    "importance_values = feature_importance_rf.set_index('Feature')['Importance']\n",
    "\n",
    "# 将 diseases_df 转换为 NumPy 数组\n",
    "diseases_array = X.to_numpy()\n",
    "\n",
    "res = np.dot(diseases_array, feature_importance_rf)\n",
    "\n",
    "excel_file_path = '../output/regress/disease_regress.xlsx'\n",
    "\n",
    "# 创建一个新的 DataFrame 只包含 'Weighted_Disease_Duration' 列\n",
    "result_df = pd.DataFrame(res)\n",
    "\n",
    "# 将结果保存为 Excel 文件\n",
    "result_df.to_excel(excel_file_path, index=False)\n",
    "\n",
    "# 打印预测结果\n",
    "# print(\"Predictions:\", predictions)\n",
    "# 绘制条形图\n",
    "plt.figure(figsize=(10, 6))\n",
    "sns.barplot(x='Importance', y='Feature', data=feature_importance_rf, palette='viridis')\n",
    "plt.title('Random Forest Feature Importance')\n",
    "plt.show()\n",
    "\n",
    "\n",
    "# 解释***\n",
    "# 考虑到不同种类慢性疾病患病年限对病人的实际影响是不同的，简单的求和、取平均、或者求最大值难以表征多种疾病不同患病的时间的实际影响\n",
    "# 因此我们采用了随机森林回归模型RandomForestRegressor[1]来建模这一过程。(实现使用了python的sklearn函数包[2])\n",
    "# 具体来说，当我们探究不同种类慢性病患病年限和电子健康素养的关系时，我们以前者为多维特征向量输入，后者为输出的预测值构建随机森林回归\n",
    "# 并通过特征重要性分析获得了不同种类病症的重要性，作为系数进行加权求和，得到一个加权患病总年限来作为患病时间长短的依据，进一步进行差异性分析和\n",
    "#相关性分析的依据\n",
    "\n",
    "# [1] Gromping. \"Variable Importance Assessment in Regression: Linear Regression versus Random Forest.\" AMER STATIST (2009).\n",
    "# [2]  https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "whj",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
